home *** CD-ROM | disk | FTP | other *** search
/ EuroCD 3 / EuroCD 3.iso / Programming / BlitzBasic / Blitz2_EquatesV3 / Includes / utility / hooks.bb2 < prev    next >
Unknown  |  1998-06-24  |  2.1 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 3b 00 3b 20 24 56 45 52 | 3a 20 68 6f 6f 6b 73 2e |;.; $VER|: hooks.|
|00000010| 62 62 32 20 34 30 2e 30 | 20 28 32 38 2e 30 32 2e |bb2 40.0| (28.02.|
|00000020| 39 34 29 00 3b 00 00 80 | 12 20 22 65 78 65 63 2f |94).;...|. "exec/|
|00000030| 74 79 70 65 73 2e 62 62 | 32 22 00 00 80 12 20 22 |types.bb|2".... "|
|00000040| 65 78 65 63 2f 6e 6f 64 | 65 73 2e 62 62 32 22 00 |exec/nod|es.bb2".|
|00000050| 00 3b 2f 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |.;/*****|********|
|00000060| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000070| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000080| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000090| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000a0| 2f 00 00 80 01 2e 48 6f | 6f 6b 00 68 5f 4d 69 6e |/.....Ho|ok.h_Min|
|000000b0| 4e 6f 64 65 2e 4d 69 6e | 4e 6f 64 65 00 2a 68 5f |Node.Min|Node.*h_|
|000000c0| 45 6e 74 72 79 2e 6c 20 | 3b 2f 2a 20 61 73 73 65 |Entry.l |;/* asse|
|000000d0| 6d 62 6c 65 72 20 65 6e | 74 72 79 20 70 6f 69 6e |mbler en|try poin|
|000000e0| 74 20 2a 2f 00 2a 68 5f | 53 75 62 45 6e 74 72 79 |t */.*h_|SubEntry|
|000000f0| 2e 6c 20 3b 2f 2a 20 6f | 66 74 65 6e 20 48 4c 4c |.l ;/* o|ften HLL|
|00000100| 20 65 6e 74 72 79 20 70 | 6f 69 6e 74 20 2a 2f 00 | entry p|oint */.|
|00000110| 2a 68 5f 44 61 74 61 2e | 62 20 3b 2f 2a 20 6f 77 |*h_Data.|b ;/* ow|
|00000120| 6e 65 72 20 73 70 65 63 | 69 66 69 63 20 20 2a 2f |ner spec|ific */|
|00000130| 00 80 02 20 80 01 00 00 | 3b 2f 2a 20 48 6f 6f 6b |... ....|;/* Hook|
|00000140| 20 63 61 6c 6c 69 6e 67 | 20 63 6f 6e 76 65 6e 74 | calling| convent|
|00000150| 69 6f 6e 73 2e 00 3b 20 | 2a 00 3b 20 2a 20 54 68 |ions..; |*.; * Th|
|00000160| 65 20 66 75 6e 63 74 69 | 6f 6e 20 70 6f 69 6e 74 |e functi|on point|
|00000170| 65 64 20 74 6f 20 62 79 | 20 48 6f 6f 6b 2e 68 5f |ed to by| Hook.h_|
|00000180| 45 6e 74 72 79 20 69 73 | 20 63 61 6c 6c 65 64 20 |Entry is| called |
|00000190| 77 69 74 68 20 74 68 65 | 20 66 6f 6c 6c 6f 77 69 |with the| followi|
|000001a0| 6e 67 00 3b 20 2a 20 70 | 61 72 61 6d 65 74 65 72 |ng.; * p|arameter|
|000001b0| 73 3a 00 3b 20 2a 00 3b | 20 2a 20 41 30 20 2d 20 |s:.; *.;| * A0 - |
|000001c0| 70 6f 69 6e 74 65 72 20 | 74 6f 20 68 6f 6f 6b 20 |pointer |to hook |
|000001d0| 64 61 74 61 20 73 74 72 | 75 63 74 75 72 65 20 69 |data str|ucture i|
|000001e0| 74 73 65 6c 66 00 3b 20 | 2a 20 41 31 20 2d 20 70 |tself.; |* A1 - p|
|000001f0| 6f 69 6e 74 65 72 20 74 | 6f 20 70 61 72 61 6d 65 |ointer t|o parame|
|00000200| 74 65 72 20 73 74 72 75 | 63 74 75 72 65 20 28 22 |ter stru|cture ("|
|00000210| 6d 65 73 73 61 67 65 22 | 29 00 3b 20 2a 20 41 32 |message"|).; * A2|
|00000220| 20 2d 20 48 6f 6f 6b 20 | 73 70 65 63 69 66 69 63 | - Hook |specific|
|00000230| 20 61 64 64 72 65 73 73 | 20 64 61 74 61 20 28 22 | address| data ("|
|00000240| 6f 62 6a 65 63 74 22 29 | 00 3b 20 2a 00 3b 20 2a |object")|.; *.; *|
|00000250| 20 43 6f 6e 74 72 6f 6c | 20 77 69 6c 6c 20 62 65 | Control| will be|
|00000260| 20 70 61 73 73 65 64 20 | 74 6f 20 74 68 65 20 72 | passed |to the r|
|00000270| 6f 75 74 69 6e 65 20 68 | 5f 45 6e 74 72 79 2e 20 |outine h|_Entry. |
|00000280| 20 46 6f 72 20 6d 61 6e | 79 00 3b 20 2a 20 48 69 | For man|y.; * Hi|
|00000290| 67 68 2d 4c 65 76 65 6c | 20 4c 61 6e 67 75 61 67 |gh-Level| Languag|
|000002a0| 65 73 20 28 48 4c 4c 29 | 2c 20 74 68 69 73 20 77 |es (HLL)|, this w|
|000002b0| 69 6c 6c 20 62 65 20 61 | 6e 20 61 73 73 65 6d 62 |ill be a|n assemb|
|000002c0| 6c 79 20 6c 61 6e 67 75 | 61 67 65 00 3b 20 2a 20 |ly langu|age.; * |
|000002d0| 73 74 75 62 20 77 68 69 | 63 68 20 70 75 73 68 65 |stub whi|ch pushe|
|000002e0| 73 20 72 65 67 69 73 74 | 65 72 73 20 6f 6e 20 74 |s regist|ers on t|
|000002f0| 68 65 20 73 74 61 63 6b | 2c 20 64 6f 65 73 20 6f |he stack|, does o|
|00000300| 74 68 65 72 20 73 65 74 | 75 70 2c 00 3b 20 2a 20 |ther set|up,.; * |
|00000310| 61 6e 64 20 74 68 65 6e | 20 63 61 6c 6c 73 20 74 |and then| calls t|
|00000320| 68 65 20 66 75 6e 63 74 | 69 6f 6e 20 61 74 20 68 |he funct|ion at h|
|00000330| 5f 53 75 62 45 6e 74 72 | 79 2e 00 3b 20 2a 00 3b |_SubEntr|y..; *.;|
|00000340| 20 2a 20 54 68 65 20 73 | 74 61 6e 64 61 72 64 20 | * The s|tandard |
|00000350| 43 20 72 65 63 65 69 76 | 69 6e 67 20 63 6f 64 65 |C receiv|ing code|
|00000360| 20 69 73 3a 00 3b 20 2a | 00 3b 20 2a 20 20 20 20 | is:.; *|.; * |
|00000370| 48 6f 6f 6b 46 75 6e 63 | 28 73 74 72 75 63 74 20 |HookFunc|(struct |
|00000380| 48 6f 6f 6b 20 2a 68 6f | 6f 6b 2c 20 41 50 54 52 |Hook *ho|ok, APTR|
|00000390| 20 6f 62 6a 65 63 74 2c | 20 41 50 54 52 20 6d 65 | object,| APTR me|
|000003a0| 73 73 61 67 65 29 00 3b | 20 2a 00 3b 20 2a 20 4e |ssage).;| *.; * N|
|000003b0| 6f 74 65 20 74 68 61 74 | 20 72 65 67 69 73 74 65 |ote that| registe|
|000003c0| 72 20 6e 61 74 75 72 61 | 6c 20 6f 72 64 65 72 20 |r natura|l order |
|000003d0| 64 69 66 66 65 72 73 20 | 66 72 6f 6d 20 74 68 69 |differs |from thi|
|000003e0| 73 20 63 6f 6e 76 65 6e | 74 69 6f 6e 20 66 6f 72 |s conven|tion for|
|000003f0| 20 43 00 3b 20 2a 20 70 | 61 72 61 6d 65 74 65 72 | C.; * p|arameter|
|00000400| 20 6f 72 64 65 72 2c 20 | 77 68 69 63 68 20 69 73 | order, |which is|
|00000410| 20 41 30 2c 41 32 2c 41 | 31 2e 00 3b 20 2a 00 3b | A0,A2,A|1..; *.;|
|00000420| 20 2a 20 54 68 65 20 61 | 73 73 65 6d 62 6c 79 20 | * The a|ssembly |
|00000430| 6c 61 6e 67 75 61 67 65 | 20 73 74 75 62 20 66 6f |language| stub fo|
|00000440| 72 20 22 76 61 6e 69 6c | 6c 61 22 20 43 20 70 61 |r "vanil|la" C pa|
|00000450| 72 61 6d 65 74 65 72 20 | 63 6f 6e 76 65 6e 74 69 |rameter |conventi|
|00000460| 6f 6e 73 00 3b 20 2a 20 | 63 6f 75 6c 64 20 62 65 |ons.; * |could be|
|00000470| 3a 00 3b 20 2a 00 3b 20 | 2a 20 5f 68 6f 6f 6b 45 |:.; *.; |* _hookE|
|00000480| 6e 74 72 79 3a 00 3b 20 | 2a 20 6d 6f 76 65 2e 6c |ntry:.; |* move.l|
|00000490| 20 20 61 31 2c 2d 28 73 | 70 29 20 20 20 20 3b 20 | a1,-(s|p) ; |
|000004a0| 70 75 73 68 20 6d 65 73 | 73 61 67 65 20 70 61 63 |push mes|sage pac|
|000004b0| 6b 65 74 20 70 6f 69 6e | 74 65 72 00 3b 20 2a 20 |ket poin|ter.; * |
|000004c0| 6d 6f 76 65 2e 6c 20 20 | 61 32 2c 2d 28 73 70 29 |move.l |a2,-(sp)|
|000004d0| 20 20 20 20 3b 20 70 75 | 73 68 20 6f 62 6a 65 63 | ; pu|sh objec|
|000004e0| 74 20 70 6f 69 6e 74 65 | 72 00 3b 20 2a 20 6d 6f |t pointe|r.; * mo|
|000004f0| 76 65 2e 6c 20 20 61 30 | 2c 2d 28 73 70 29 20 20 |ve.l a0|,-(sp) |
|00000500| 20 20 3b 20 70 75 73 68 | 20 68 6f 6f 6b 20 70 6f | ; push| hook po|
|00000510| 69 6e 74 65 72 00 3b 20 | 2a 20 6d 6f 76 65 2e 6c |inter.; |* move.l|
|00000520| 20 20 68 5f 53 75 62 45 | 6e 74 72 79 28 61 30 29 | h_SubE|ntry(a0)|
|00000530| 2c 61 30 20 3b 20 66 65 | 74 63 68 20 43 20 65 6e |,a0 ; fe|tch C en|
|00000540| 74 72 79 20 70 6f 69 6e | 74 20 2e 2e 2e 00 3b 20 |try poin|t ....; |
|00000550| 2a 20 6a 73 72 20 28 61 | 30 29 20 20 20 20 20 20 |* jsr (a|0) |
|00000560| 3b 20 2e 2e 2e 20 61 6e | 64 20 63 61 6c 6c 20 69 |; ... an|d call i|
|00000570| 74 00 3b 20 2a 20 6c 65 | 61 20 31 32 28 73 70 29 |t.; * le|a 12(sp)|
|00000580| 2c 73 70 20 20 20 3b 20 | 66 69 78 20 73 74 61 63 |,sp ; |fix stac|
|00000590| 6b 00 3b 20 2a 20 72 74 | 73 00 3b 20 2a 00 3b 20 |k.; * rt|s.; *.; |
|000005a0| 2a 20 57 69 74 68 20 74 | 68 69 73 20 66 75 6e 63 |* With t|his func|
|000005b0| 74 69 6f 6e 20 61 73 20 | 79 6f 75 72 20 69 6e 74 |tion as |your int|
|000005c0| 65 72 66 61 63 65 20 73 | 74 75 62 2c 20 79 6f 75 |erface s|tub, you|
|000005d0| 20 63 61 6e 20 77 72 69 | 74 65 20 61 20 48 6f 6f | can wri|te a Hoo|
|000005e0| 6b 20 73 65 74 75 70 00 | 3b 20 2a 20 66 75 6e 63 |k setup.|; * func|
|000005f0| 74 69 6f 6e 20 61 73 3a | 00 3b 20 2a 00 3b 20 2a |tion as:|.; *.; *|
|00000600| 20 49 6e 69 74 48 6f 6f | 6b 28 73 74 72 75 63 74 | InitHoo|k(struct|
|00000610| 20 48 6f 6f 6b 20 2a 68 | 6f 6f 6b 2c 20 55 4c 4f | Hook *h|ook, ULO|
|00000620| 4e 47 20 28 2a 63 5f 66 | 75 6e 63 74 69 6f 6e 29 |NG (*c_f|unction)|
|00000630| 28 29 2c 20 41 50 54 52 | 20 75 73 65 72 64 61 74 |(), APTR| userdat|
|00000640| 61 29 00 3b 20 2a 20 7b | 00 3b 20 2a 20 55 4c 4f |a).; * {|.; * ULO|
|00000650| 4e 47 20 28 2a 68 6f 6f | 6b 45 6e 74 72 79 29 28 |NG (*hoo|kEntry)(|
|00000660| 29 3b 00 3b 20 2a 00 3b | 20 2a 20 20 20 20 20 68 |);.; *.;| * h|
|00000670| 6f 6f 6b 2d 3e 68 5f 45 | 6e 74 72 79 20 3d 20 68 |ook->h_E|ntry = h|
|00000680| 6f 6f 6b 45 6e 74 72 79 | 3b 00 3b 20 2a 20 20 20 |ookEntry|;.; * |
|00000690| 20 20 68 6f 6f 6b 2d 3e | 68 5f 53 75 62 45 6e 74 | hook->|h_SubEnt|
|000006a0| 72 79 20 3d 20 63 5f 66 | 75 6e 63 74 69 6f 6e 3b |ry = c_f|unction;|
|000006b0| 00 3b 20 2a 20 20 20 20 | 20 68 6f 6f 6b 2d 3e 68 |.; * | hook->h|
|000006c0| 5f 44 61 74 61 20 20 3d | 20 75 73 65 72 64 61 74 |_Data =| userdat|
|000006d0| 61 3b 00 3b 20 2a 20 7d | 00 3b 20 2a 00 3b 20 2a |a;.; * }|.; *.; *|
|000006e0| 20 57 69 74 68 20 61 20 | 63 6f 6d 70 69 6c 65 72 | With a |compiler|
|000006f0| 20 63 61 70 61 62 6c 65 | 20 6f 66 20 72 65 67 69 | capable| of regi|
|00000700| 73 74 65 72 69 7a 65 64 | 20 70 61 72 61 6d 65 74 |sterized| paramet|
|00000710| 65 72 73 2c 20 73 75 63 | 68 20 61 73 20 53 41 53 |ers, suc|h as SAS|
|00000720| 20 43 2c 20 79 6f 75 00 | 3b 20 2a 20 63 61 6e 20 | C, you.|; * can |
|00000730| 70 75 74 20 74 68 65 20 | 43 20 66 75 6e 63 74 69 |put the |C functi|
|00000740| 6f 6e 20 69 6e 20 74 68 | 65 20 68 5f 45 6e 74 72 |on in th|e h_Entr|
|00000750| 79 20 66 69 65 6c 64 20 | 64 69 72 65 63 74 6c 79 |y field |directly|
|00000760| 2e 20 46 6f 72 20 65 78 | 61 6d 70 6c 65 2c 20 66 |. For ex|ample, f|
|00000770| 6f 72 00 3b 20 2a 20 53 | 41 53 20 43 3a 00 3b 20 |or.; * S|AS C:.; |
|00000780| 2a 00 3b 20 2a 20 20 20 | 55 4c 4f 4e 47 20 5f 5f |*.; * |ULONG __|
|00000790| 73 61 76 65 64 73 20 5f | 5f 61 73 6d 20 48 6f 6f |saveds _|_asm Hoo|
|000007a0| 6b 46 75 6e 63 28 72 65 | 67 69 73 74 65 72 20 5f |kFunc(re|gister _|
|000007b0| 5f 61 30 20 73 74 72 75 | 63 74 20 48 6f 6f 6b 20 |_a0 stru|ct Hook |
|000007c0| 2a 68 6f 6f 6b 2c 00 3b | 20 2a 20 20 20 20 20 20 |*hook,.;| * |
|000007d0| 20 20 20 20 72 65 67 69 | 73 74 65 72 20 5f 5f 61 | regi|ster __a|
|000007e0| 32 20 41 50 54 52 20 20 | 20 20 20 20 20 6f 62 6a |2 APTR | obj|
|000007f0| 65 63 74 2c 00 3b 20 2a | 20 20 20 20 20 20 20 20 |ect,.; *| |
|00000800| 20 20 72 65 67 69 73 74 | 65 72 20 5f 5f 61 31 20 | regist|er __a1 |
|00000810| 41 50 54 52 20 20 20 20 | 20 20 20 6d 65 73 73 61 |APTR | messa|
|00000820| 67 65 29 3b 00 3b 20 2a | 00 3b 20 2a 2f 00 00 3b |ge);.; *|.; */..;|
|00000830| 2f 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/*******|********|
|00000840| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000850| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000860| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000870| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2f 00 |********|******/.|
+--------+-------------------------+-------------------------+--------+--------+